package com.jeasonzhao.commons.parser.expression;

public interface IEvalProvider
{
    /**
     * No variable found ,throw VariableNotFoundException
     * @param strExpression String
     * @return ValuePair
     * @throws EvalException
     */
    public ValuePair evalVariable(String strExpression)
        throws EvalException;

    /**
     * If no function defined ,return null.
     * @param strFunctionName String
     * @param parameters ValuePair[]
     * @return IFunctionSign
     */
    public IMethodDefination getMethodDefination(String strFunctionName,ValuePair[] parameters);

    /**
     * No funtionality, throw exception
     * @param strFunctionName String
     * @param parameters ValuePair[]
     * @return ValuePair
     * @throws EvalException
     */
    public ValuePair evalFunction(String strMethodName,ValuePair[] parameters)
        throws EvalException;
}
